The invention relates to method and apparatus for processing input/output requests by connecting a host computer and an input/output control unit by a plurality of channel buses and, more particularly, method and apparatus for processing input/output requests by using channel buses of different transfer speeds.
FIG. 1 shows an example of an input/output (I/O) subsystem using magnetic tape apparatuses. The input/output subsystem is constructed by: a magnetic tape control unit 410 which functions as an input/output control unit; and a plurality of magnetic tape drive units 412-1 to 412-4 each of which functions as an input/output unit. Devices ID #1 to #4 are refined for the magnetic tape drive units 412-1 to 412-4. The magnetic tape control unit 410 has, for example, two input/output (I/O) ports 420-1 and 420-2. Port numbers (A) and (B) are defined for the I/O ports 420-1 and 420-2. Channel units 416-1 and 416-2 of host computers 414-1 and 414-2 are connected to the I/O ports 420-1 and 420-2 through channel buses 418-1 and 418-2. Channel numbers (A) and (B) are defined for the channel units 416-1 and 416-2. In the following description, the above components are merely expressed as channels (A) and (B) and ports (A) and (B).
A processing operation for an input/output request from the host computer will now be briefly described. For example, it is now assumed that an input/output request such as a write request for a magnetic tape loaded in the magnetic tape drive unit 412-1 was generated by the host computer 414-1. The channel (A) of the host computer 414-1 first generates a start I/O request (activation request) which designates a device machine No. #1 of the magnetic tape drive unit 412-1 to the I/O port (A). In response to the start I/O request from the port (A), the magnetic tape control unit 410 discriminates whether the port (B) has been coupled to the channel (B) or not. When the port (B) is not being coupled, the magnetic tape control unit 410 accepts the start I/O request for the port (A) and is coupled with the channel (A) and responds a normal end of the start I/O request and executes a transferring process of a command sequence.
When the start I/O request from the channel (A) is received by the port (A), if the channel (B) has been coupled, a busy response is returned. When the transferring process by the coupling of the channel (B) and the port (B) is finished, a status response of a unit end is performed from the port (B) to the channel (B) and they are disconnected. In association with the disconnection, a busy end indicative of a busy cancellation is also performed from the port (A) to the channel (A). An activation request is again performed from the channel (A) in the waiting state to the port (A) by the busy response.
In the input/output control unit for processing input/output requests from such a plurality of channels, it is necessary to equivalently execute services for the input/output request of each channel. However, in the case where transfer speeds of the channel buses differ, or a different transfer protocol is used in dependence on the channel, like an electric channel bus or an optical channel bus, there is a tendency such that the services are one-sided to the high speed channel by all means, so that there is a problem of reduction of the services to the low speed channel. As a system environment, in many cases, the high speed host computer and the low/middle speed host computer mixedly exist. Further, the high speed host computer and the middle/low speed host computer are connected so that they can be cross-called. In such a case, a problem similar to that mentioned above occurs. This point will now be described with reference to FIG. 1. For instance, it is now assumed that the channel (A) is a low speed channel and the channel (B) is a high speed channel. An input/output control in this case is executed as shown in, for example, a time chart of FIG. 2.
When a start I/O request 500 is sent from the high speed channel (B) to the port (B) and a coupling completion response 502 by the normal end is obtained, transferring processes 504 and 506 of a command sequence between the high speed channel (B) and the port (B) are executed. Now, assuming that a start I/O port request 508 is generated from the low speed channel (A) to the port (A) for periods of time of the transferring processes 504 and 506, since the port (B) has been coupled, a busy response 510 is returned. After completion of the transferring process 506, a unit end 512 is returned from the port (B) to the high speed channel (B) and the coupling is disconnected. In association with the unit end 512, a busy end 514 indicative of the busy cancellation is subsequently returned from the port (A) to the low speed channel (A) in the waiting state of the busy cancellation. When it is now assumed that the next input/output request has been generated from the high speed channel (B) which received the unit end 512, a start I/O request 516 as an activation request is immediately outputted from the high speed channel (B) to the port (B). After a coupling completion response 518 was performed, transferring processes 520 and 522 are again executed. On the other hand, the low speed channel (A) which received the busy end 514 recognizes the busy cancellation and generates a start I/O request 524 to the port (A). However, it takes a time until the start I/O request 524 is received by the port (A) after the busy end 514 was outputted. For such a period of time, the port (B) has been coupled by the start I/O request 516 from the high speed channel (B). Therefore, for the start I/O request 524 from the low speed channel (A), a busy response 526 is again outputted from the port (A) and the low speed channel (A) again waits for a busy cancellation. Therefore, so long as the input/output request is continuously performed to the high speed channel (B), a loop process of the start I/O request, busy response, and busy end is repeated for the low speed channel (A). The input/output request is not accepted and the services deteriorate. In the worst case, since such a loop process is executed for a long time, there is a problem of the occurrence of a check condition such that the host computer of the low speed channel (A) judges that some abnormality occurred in the channel unit or input/output subsystem. In dependence on a control method, when the input/output request from the high speed channel is continuously performed, there is also no time to respond to the busy end in association with the end of the coupling on the high speed channel side for the low speed channel (A). In such a case, the low speed channel in the busy cancellation waiting state cannot obtain the busy end even if it waits for the busy cancellation for a long time. A situation such that the busy cancellation waiting times out and the input/output request of the low speed channel is finished as an error occurs. As a method of solving the above problem such that the services of the input/output control apparatus are one-sided to a specific channel as mentioned above, there is a method of time-divisionally changing the priority of the route so that the services are equivalently given to each input/output port.
FIG. 3 shows the case where eight channels of ports (A to H) are provided for the input/output control unit. Priorities are sequentially allocated to the ports (A to H) by clocks in accordance with that order. It is now assumed that, for example, there are activation requests to all of the input/output ports (A to H) at time t0. In this instance, there is a clock in a slot of the I/O port (C), the priority is set, and the coupling at the I/O port (C) is accepted. With respect to the other I/O ports, the busy response is automatically reported. Now, assuming that there are two activation requests of the I/O ports (B and E) at time t0, the coupling of the I/O port (E) is accepted to a slot of the I/O port (E) at time t1 when the clock changes. With respect to the I/O port (B), the busy response is automatically reported. Such a method of changing the priority of the route time-divisionally is effective in the case where each channel bus has the same performance and also has the same protocol such as electric channel bus or optical channel bus. However, in the case where the transfer speeds are different or the protocols in which an electric channel and an optical channel mixedly exist are different, the above method is not so effective.